/**
 * 差configureWebpack和chainWebpack,这两个不怎么懂,需要继续研究
 */
module.exports = {
/** 默认情况下，Vue CLI 会假设你的应用是被部署在一个域名的根路径上，例如 https://www.my-app.com/。如果应用被部署在一个子路径上，你就需要用这个选项指定这个子路径。例如，如果你的应用被部署在 https://www.my-app.com/my-app/，则设置 publicPath 为 /my-app/
 * 开发服务器架设在根路径，publicPath: process.env.NODE_ENV === 'production'? '/production-sub-path/': '/'
 */
  publicPath: '/',
  outputDir: 'dist', // 打包路径
  assetsDir: 'static', // 放置生成的静态资源(相对于outputDir)
  indexPath: 'index.html', // 指定生成的index.html的输出路径(相对于outputDir)
  /* 是否在开发环境下通过eslint-loader在每次保存时lint代码,会将lint错误输出为lint警告,如果需要生产构建时禁用 eslint-loader，你可以用如下配置lintOnSave: process.env.NODE_ENV !== 'production' */
  lintOnSave: true,
  productionSourceMap: false, // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建
  devServer: {
    host: 'localhost', // 主机
    port: 4000, // 本地端口号,可以修改启动的端口号
    https: false, // https:{type:Boolean}
    open: true, // 自动启动浏览器
    hotOnly: true, // 热更新
    overlay: { // 浏览器overlay同时显示警告和错误
      warnings: true,
      errors: true
    },
    // proxy: 'http://api.zhuishushenqi.com/' // 将所有的本地请求都代理到api.zhuishushenqi.com这个接口
    /**
    proxy: [{ //如果你想要代码多个路径代理到同一个target下, 你可以使用由一个或多个「具有 context 属性的对象」构成的数组
        context: ['/auth', '/api'],
        target: 'http://localhost:3000',
    }]
     */
    proxy: { // 代理请求
      '/api': {
        target: 'http://api.zhuishushenqi.com/',
        changeOrigin: true, // 开启代理：在本地会创建一个虚拟服务端，然后发送请求的数据
        // secure: false, // 如果是https接口，需要配置这个参数
        pathRewrite: {
          '^/api': '' // 把本地的localhost:4000/api/xxx代理成http://api.zhuishushenqi.com/xxx
        }
      },
      '/yes': {
        target: 'http://hn216.api.yesapi.cn/',
        changeOrigin: true,
        pathRewrite: {
          '^/yes': ''
        }
      }
    },
    before: app => { // 在服务内部的所有其他中间件之前,提供执行自定义中间件的功能.这可以用来配置自定义处理程序
      app.get('/test', (req, res) => {
        res.json({
          msg: '测试内部app服务器成功'
        })
      })
    }
  },
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src'))
      .set('@c', resolve('src/components'))
  }
}
